﻿using Microsoft.Xna.Framework;

namespace SceneEngine
{
    public interface ICamera
    {
        Vector3 Position { get; set; }
        Vector3 Forward { get; }

        float Yaw { get; }

        float Speed { get; set; }

        float NearPlane { get; }
        float FarPlane { get; }

        Matrix View { get; }
        Matrix Projection { get; }

        BoundingFrustum Frustum { get; }

        void Update(float timeDelta);
        void ChangeDirection(Vector3 difference);

        void UpdateProjection();
    }
}
